package edu.ccut.saturn.component;

import java.util.Map;

/**
 * 定义了验证操作的接口。
 * 
 * @author 谷钰
 * 
 * @version 1.0 2008.9.04
 * 
 * 
 * 
 */
public interface IValidate {

	/**
	 * 获得验证组件的键值
	 * @return
	 */
	public String getValidateKey();

	/**
	 * 设置验证组件的键值
	 * @param key
	 */
	public void setValidateKey(String key);

	/**
	 * 获得验证错误信息
	 * @return
	 */
	public Map<String, String> getErrorInfos();

	/**
	 * 设置验证错误信息
	 * @param errorInfos
	 */
	public void setErrorInfos(Map<String, String> errorInfos);

	/**
	 * 验证方法
	 * 
	 * @param value
	 *            验证的对象
	 * @param args
	 *            验证需要的参数列表
	 * @param result
	 *            验证结果
	 *            
	 * @throws SaturnComponentException
	 * @throws SaturnValidateFailedException
	 * 
	 */
	public abstract void validate(Object value, Object[] args,
			ValidateResult result);
}
